#ifndef __XLD_BTDT_H__
#define __XLD_BTDT_H__

#ifdef __cplusplus
extern "C" {
#endif

#include "vtor_elec_module_config.h"

#ifdef __XLD_BTDT__

#include "main.h"

// 运行配置宏存在，可以配置buffer大小
#ifdef __XLD_BTDT_CONFIG_USER_DEFINE_BUF_SIZE__

#else
#define XLD_BTDT_BUFFER_SIZE 64
#endif

#define XLD_BTDT_FRAME_HEAD 0xa5
#define XLD_BTDT_FRAME_TAIL 0x5a

typedef struct
{
	int16_t rxCnt;
	int16_t txCnt;
	int8_t rxBuf[XLD_BTDT_BUFFER_SIZE];
	int8_t txBuf[XLD_BTDT_BUFFER_SIZE];
}XldBtdt;


uint8_t XldBtdt_CheckRxBuf(XldBtdt* dt);
void XldBtdt_ReceiveByte(XldBtdt* dt, uint8_t recvData);
void XldBtdt_PackAndTransmit(XldBtdt* dt, void* buf, int16_t len);

// 用户自行实现解码接收数据
// 用户自行实现发送数据（stm32一般是使用串口）
void XldBtdt_UnpackRxBuf(XldBtdt* dt);
void XldBtdt_Transmit(XldBtdt* dt);

#endif // __XLD_BTDT__


#ifdef __cplusplus
}
#endif

#endif
